.. _cmsHomeGetSuccess: cmsHomeGetSuccess ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmsHomeGetSuccess ([in] VT_I4 BoardId, [in] VT_I4 Axis, [out] VT_PI4 IsSuccess) DESCRIPTION ````````````` - cmsHomeGetSuccess() 함수는 ì´ í•¨ìˆ˜ê°€ 호출ë˜ê¸° ì´ì „ì— ì›ì 복귀가 성공ì 으로 완료ë˜ì—ˆëŠ”지를 ì•Œë ¤ì£¼ëŠ” 함수입니다. \ - ì´ í•¨ìˆ˜ì˜ ì‚¬ìš©ê³¼ í˜¸ì¶œì— ìžˆì–´, ì œê³µëœ ãˆœì»¤ë¯¸ì¡°ì•„ì˜ í•¨ìˆ˜ í—¤ë” Visual Basic ì—서는 í•¨ìˆ˜ì˜ ì²¨ë‘ì–´ cms ê°€ 붙지 않습니다. PARAMETER ````````````` â–¶ BoardId: 사용ìžê°€ ì„¤ì •í•œ 디바ì´ìŠ¤(ë³´ë“œ) ID. â–¶ Axis : 축(채ë„) 번호. 축번호는 ìƒìˆ˜ê°’으로 0번째 채ë„ì„ ê¸°ì¤€ 채ë„ë¡œ ìž„ì˜ì˜ 채ë„ì„ ì„¤ì •í• ìˆ˜ 있습니다. â–¶ IsSuccess : cmsHomeGetSuccessí•¨ìˆ˜ì˜ ì¸ìžì´ë©°, ì´ í•¨ìˆ˜ê°€ í˜¸ì¶œëœ ì‹œì ì„ ê¸°ì¤€ìœ¼ë¡œ ì´ì „ì— ì›ì 복귀가 성공ì 으로 ì™„ë£Œëœ ìƒíƒœì¸ì§€ë¥¼ ì•Œë ¤ì£¼ëŠ” 매개 변수(媒介變數)입니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning "| 0 (FALSE)", " | ì§€ì •í•œ ì¶•ì€ í˜„ìž¬ ì›ì 복귀가 진행 중ì´ê±°ë‚˜ | ë˜ëŠ” ë¹„ì •ìƒì 으로 완료ë˜ì—ˆìŠµë‹ˆë‹¤." "| 1 (TRUE)"," | ì§€ì •í•œ ì¶•ì€ í˜„ìž¬ ì›ì 복귀가 ì •ìƒì 으로 ìˆ˜í–‰ëœ ìƒíƒœìž…니다. | " RETURN VALUE ````````````` +------------+-----------+ | Value | Meaning | +============+===========+ | ìŒìˆ˜ | 수행 실패 | +------------+-----------+ | ERR_NONE | 수행 성공 | +------------+-----------+ REFERENCE ````````````` - ì›ì ë³µê·€ì˜ ì„±ê³µ ì—¬ë¶€ì— ëŒ€í•œ 플래그 ê°’ì€ ì‘ìš©í”„ë¡œê·¸ëž¨ì´ ì¢…ë£Œ(終了)ë˜ì–´ë„ 그대로 ìœ ì§€ë©ë‹ˆë‹¤. ë”°ë¼ì„œ 다시 ì‘ìš©í”„ë¡œê·¸ëž¨ì´ ì‹œìž‘ë˜ë©´ ì´ì „ì— ì›ì 복귀를 ì •ìƒì 으로 수행했었는지를 ì•Œ 수가 있습니다. 단, PCì˜ í•˜ë“œì›¨ì–´ì ì¸ ì „ì›ì´ 차단ë˜ê±°ë‚˜ 재 시작(Rebooting) ë˜ë©´ ê·¸ ê°’ì€ FALSEë¡œ 리셋ë©ë‹ˆë‹¤. ë”°ë¼ì„œ cmsHomeGetSuccess() í•¨ìˆ˜ì˜ ì´ëŸ¬í•œ 특성(特性)ì„ í™œìš©í•˜ë©´ í”„ë¡œê·¸ëž¨ì´ ì¢…ë£Œë˜ì—ˆë‹¤ê°€ 다시 실행ë ë•Œ ì´ì „ì˜ ì›ì 복귀 수행여부를 확ì¸(確èª)í• ìˆ˜ê°€ 없어서 매번 ì›ì 복귀를 수행해야 í–ˆë˜ ë¶ˆíŽ¸ì„ ë³´ì™„(補完)í• ìˆ˜ 있습니다. \ - IsSuccess 매개 변수(媒介變數)ê°€ FALSEì¸ ê²½ìš°ëŠ” ì›ì 복귀가 ì§„í–‰ì¤‘ì¸ ê²½ìš°ë¥¼ ì˜ë¯¸í• ìˆ˜ë„ ìžˆê³ ë¹„ì •ìƒì 으로 종료ë˜ì—ˆìŒì„ ì˜ë¯¸í• ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. ë”°ë¼ì„œ cmsHomeMoveStart() 함수를 사용한 경우ì—는 ë¨¼ì € cmsHomeIsBusy() 함수나 cmsHomeWaitDone() 함수를 ì„ í–‰í•˜ì—¬ 완료를 확ì¸(確èª)í•œ í›„ì— cmsHomeGetSuccess()를 사용하여 성공여부를 확ì¸(確èª)하는 ê²ƒì´ ì •ì„입니다. \ - ì´ì „ì— ì›ì 복귀가 성공ì 으로 수행ë˜ì—ˆë”ë¼ë„ 해당 ì¶•ì˜ ì›ì 복귀를 다시 시작하면 ì›ì ë³µê·€ì˜ ì„±ê³µ ì—¬ë¶€ì— ëŒ€í•œ 플래그는 FALSEë¡œ 리셋(Reset)ë©ë‹ˆë‹¤. EXAMPLE ``````````````````` - ì•„ëž˜ì˜ ì˜ˆì œì—ì„œ OnProgramInitialHome() 함수는 ì‘ìš©í”„ë¡œê·¸ëž¨ì´ ì‹œìž‘ë ë•Œ ìžë™ìœ¼ë¡œ ì›ì 복귀를 수행하기 위하여 호출ë˜ëŠ” ê°€ìƒì˜ 함수입니다. 단, ì´ë•Œ cmsHomeGetSuccess() 함수를 ì´ìš©í•˜ì—¬ ì´ì „ì— ì›ì 복귀가 ì´ë¯¸ 성공ì 으로 수행ë˜ì—ˆëŠ”지를 확ì¸(確èª)í•˜ê³ , ë§Œì¼ ê·¸ëŸ¬í•œ 경우ë¼ë©´ ì›ì 복귀를 ìƒëžµí•˜ë„ë¡ í•©ë‹ˆë‹¤. .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ : #define DEV0 0 BOOL OnProgramInitialHome(int nAxis) { long dwAlreadyDone; cmsHomeGetSuccess(DEV0, nAxis, &dwAlreadyDone); // ì´ì „ì— ì›ì 복귀 ìƒíƒœ 확ì¸(確èª) if(dwAlreadyDone){// ì´ì „ì— ì´ë¯¸ ì›ì 복귀가 ì´ë£¨ì–´ì¡Œìœ¼ë©´ ì›ì 복귀 ìƒëžµ return TRUE; } long dwIsHomming = TRUE; cmsHomeMoveStart(DEV0, nAxis, cmsDIR_N); while(dwIsHomming){ cmsHomeIsBusy(DEV0, nAxis, &dwIsHomming); // ì›ì 복귀 진행여부 ì½ê¸° // 윈ë„ìš° 메시지를 처리해준다 ( ex: PeekMessage) } // ì›ì ë³µê·€ì˜ ì„±ê³µì—¬ë¶€ë¥¼ 확ì¸(確èª)하여 처리한다. // long dwIsSuccess; cmsHomeGetSuccess(DEV0, nAxis, &dwIsSuccess); if(dwIsSuccess){ MessageBox(NULL, “ì›ì 복귀를 성공ì 으로 수행하였습니다.â€, “Messageâ€, MB_OK); }else{ char szErrMsg[CMS_MAX_STR_LEN_ERR]; char szErrReason[CMS_MAX_STR_LEN_ERR]; long dwErrCode; cmsErrGetLastCode(DEV0, nAxis, &dwErrCode); cmsErrGetString(DEV0, dwErrCode, szErrReason, CMS_MAX_STR_LEN_ERR); sprintf(szErrMsg, “다ìŒê³¼ ê°™ì€ ì´ìœ ë¡œ ì›ì ë³µê·€ì— ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤.\n%sâ€, szErrReason); MessageBox(NULL, szErrMsg, “Motion Errorâ€, MB_OK | MB_ICONERROR); } } ------------------------------------------------------------------------------------------- Visual Basic Const DEV0 = 0 Dim dwIsHomming As Long Dim dwIsSuccess As Long dwIsHomming = True Call HomeMoveStart(DEV0, 0, cmsDIR_N) Do While (dwIsHomming) 'ì›ì 진행여부 확ì¸(確èª) Call HomeIsBusy(DEV0, 0, dwIsHomming) Loop If (HomeGetSuccess(DEV0, 0, dwIsSuccess) <> ERR_NONE) Then // ì—러메시지 ì¶œë ¥ If (dwIsSuccess) Then MsgBox ("ì›ì 복귀를 성공ì 으로 수행하였습니다.") End If -------------------------------------------------------------------------------------------